package com.itheima.health.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * @author 施子安
 * @version 1.0
 * @date 2023/4/27 13:07
 * @Description 会员数据业务处理层
 */
@Mapper
public interface MemberDao {

    /**
     * 查询会员每年月份注册数量
     *
     * @return
     */

    List<Map<String, Integer>> getMemberReport();

    /**
     * 今日新会员数
     *
     * @param date
     * @return
     */
    Integer selectNewMemberNumByDay(LocalDate date);

    /**
     * 本月新会员数
     *
     * @param monthDate
     * @param date
     * @return
     */
    Integer selectNewMemberByMonth(@Param("monthDate") LocalDate monthDate, @Param("date") LocalDate date);

    /**
     * 本周新会员数
     *
     * @param weekDate
     * @param date
     * @return
     */
    Integer selectNewMemberByWeek(@Param("weekDate") LocalDate weekDate, @Param("date") LocalDate date);

    /**
     * 会员总数
     *
     * @return
     */
    Integer selectNums();

    /**
     * 获取每月会员数量
     * @param endDate
     * @return
     */

    Long countByRegTimeBefore(String endDate);
}
